/** 
 * @author 郝帆
 * @date 2010-7-7  
 * @Title: LoginBussiness 
 * @Description: 登陆业务类
 */
package com.ccxe.manage.service;

import java.security.MessageDigest;
import java.sql.SQLException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.ccxe.manage.dao.impl.UserLoginDao;

public class LoginBussiness {
	
	@SuppressWarnings("unused")
	private static Log logger = LogFactory.getLog(LoginBussiness.class);
	private UserLoginDao dao = null;
	
	public LoginBussiness(){
		try {
			dao = new UserLoginDao();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public CurrUserInfo getCurrUserInfo(String userId){

		CurrUserInfo currUser = null;
		try {
			currUser = dao.getCurrUserInfo(userId);
		} catch (SQLException e) {
		} catch (Exception e) {
			e.printStackTrace();
		}
		return currUser;
	} 
	
    public static String getMD5(String pwd) {   
        byte[] source = pwd.getBytes();   
        String s = null;   
        // 用来将字节转换成 16 进制表示的字符   
        char hexDigits[] = {    
        '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd',   
                'e', 'f' };   
        try {   
            // MD5 的计算结果是一个 128 位的长整数， 用字节表示就是 16 个字节   
            MessageDigest md = MessageDigest.getInstance("MD5");   
            md.update(source);   
            byte tmp[] = md.digest();   
  
            // 每个字节用 16 进制表示的话，使用两个字符，所以表示成 16进制需要 32 个字符   
            char str[] = new char[16 * 2];   
  
            // 表示转换结果中对应的字符位置   
            int k = 0;   
  
            // 从第一个字节开始，对 MD5 的每一个字节转换成 16 进制字符的转换   
            for (int i = 0; i < 16; i++) {   
                // 取第 i 个字节   
                byte byte0 = tmp[i];   
                // 取字节中高 4 位的数字转换,>>> 为逻辑右移，将符号位一起右移   
                str[k++] = hexDigits[byte0 >>> 4 & 0xf];   
                // 取字节中低 4 位的数字转换   
                str[k++] = hexDigits[byte0 & 0xf];   
            }   
            s = new String(str); // 换后的结果转换为字符串   
  
        } catch (Exception e) {   
            e.printStackTrace();   
        }   
        return s;   
    }
}
